package bean;

import javax.swing.JOptionPane;

public abstract class Funcionario {

	private int codigo;
	private String nome;
	private int idade;
	private char sexo;
	private float salario;

	public abstract float calcularAdicionaisSalario();

	public abstract String cargo();

	public void inserirDados() throws Exception {
		try {
			setNome(JOptionPane.showInputDialog("Informe o nome"));
			setIdade(Integer.parseInt(JOptionPane.showInputDialog("Informe a idade")));
			setSexo(JOptionPane.showInputDialog("Informe o sexo").toUpperCase().charAt(0));
			setSalario(Float.parseFloat(JOptionPane.showInputDialog("Informe o sálario")));
		} catch (Exception e) {
			throw new Exception();
		}
	}

	public void alterarDados() throws Exception {
		try {
			setNome(JOptionPane.showInputDialog("Informe o nome", nome));
			setIdade(Integer.parseInt(JOptionPane.showInputDialog("Informe a idade"), idade));
			setSexo(JOptionPane.showInputDialog("Informe o sexo", sexo).toUpperCase().charAt(0));
			setSalario(Float.parseFloat(JOptionPane.showInputDialog("Informe o sálario", salario)));
		} catch (Exception e) {
			throw new Exception();
		}
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getIdade() {
		return idade;
	}

	public void setIdade(int idade) {
		this.idade = idade;
	}

	public char getSexo() {
		return sexo;
	}

	public void setSexo(char sexo) {
		this.sexo = sexo;
	}

	public float getSalario() {
		return salario;
	}

	public void setSalario(float salario) {
		this.salario = salario;
	}

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	public String toString() {
		String out = "";
		out += "Código: " + codigo + "\n";
		out += "Nome: " + nome + "\n";
		out += "Idade: " + idade + "\n";
		out += "Sexo: " + (sexo == 'M' ? "Masculino" : "Feminino") + "\n";
		out += "Cargo: " + cargo() + "\n";
		out += "Salário: " + calcularAdicionaisSalario();
		return out;
	}

}